#pragma once

class CPoint3D
{
public:
	CPoint3D(void);
	CPoint3D(const CPoint3D&);
	CPoint3D(float,float,float);
	~CPoint3D(void);
	
	float Normalize();
	float Length();
	float Distance(const CPoint3D&);

	float Dot(const CPoint3D&);
	CPoint3D Cross(const CPoint3D&);

	// Operators
	CPoint3D operator+(const CPoint3D&);
	CPoint3D operator-(const CPoint3D&);
	CPoint3D operator*(float);
	CPoint3D operator/(float);
	bool operator==(const CPoint3D&);
	bool operator!=(const CPoint3D&);
	void operator+=(const CPoint3D&);
	void operator-=(const CPoint3D&);
	void operator*=(float);
	void operator/=(float);
	CPoint3D operator-();
	float x;
	float y;
	float z;
};
